As may be appreciated, a content management server (CMS) is employed by an enterprise or organization to build, deploy, and maintain a content-rich web site such as that which may be accessible by way of the Internet or another network. Such a CMS streamlines the web publishing process, thereby reducing costly site maintenance and empowering the enterprise or organization to manage its own content. An example of such a CMS is provided by the MICROSOFT Content Management Server application, as developed and marketed by MICROSOFT Corporation of Redmond, Wash., USA.
Thus, a CMS is employed to deploy an Internet, intranet, or extranet web site, and provides tools necessary to build and deploy the core infrastructure of a web site, including site structure, presentation templates, site design, application integration, and security. In addition, once a site has been deployed, managers and content authors can use CMS tools to create, publish, and manage their own content.
Typically, a CMS provides content managers, authors, and the like with tools that enable such personnel to create and publish rich, personalized content directly to a web site. A role-based distributed publishing model is typically employed, where such model incorporates an approval workflow with multiple levels, automatic content scheduling and archiving, and content indexing. Developers can create centrally-managed page templates and publishing processes that ensure consistency across the site, thus ensuring adherence to organizational publishing standards and branding without diminishing the flexibility of the publishing environment.
In the prior art, a designer designing a page of content by way of a CMS would be required to employ a specialized authoring tool to lay out the page, and the specialized authoring tool would then convert the laid out page into an appropriate format in which such page is to be served by the CMS. An example of such an appropriate format is HTML or XML, although other formats can be employed. Thus, the designed designing the page had to possess a considerable amount of knowledge regarding the use and operation of the specialized authoring tool, full mastery of which could take a considerable amount of time.
As a result, a typical non-technical enterprise functionary could not easily edit a designed page, such as for example to modify the page or to create a similar page, without the aid of the designer. Moreover, such functionary could not easily create and design such a page without the aid of such designer.
Accordingly, a need exists for a CMS system with an authoring tool that is usable by a non-technical enterprise functionary to create, modify, and/or edit a page of content to be served by the CMS. More particularly, a need exists for such an authoring tool with a toolbox of control objects, where the functionary can at least in part design a page by laying out on the page one or more control objects from the toolbox and then editing each control object as necessary.
Even more particularly, a need exists for a placeholder control object that functions in an authoring mode to facilitate authoring of content on the page and in a presentation mode to facilitate presentation of the authored content on the page, depending on whether the page is being authored or presented. Accordingly, a functionary can navigate by way of the CMS to a page with one or more of such placeholder control objects, switch from a presentation mode to an authoring mode, and edit the navigated-to page. After editing is finished and the page is saved, the functionary can then switch from the authoring mode to the presentation mode and view the edited page as it would appear to any party requesting that same be served thereto.
With such a placeholder control object, authoring and presentation of the content associated with object are functionally separate, yet are designed together to seamlessly provide the appropriate editing and viewing functions. For example if in authoring mode, a placeholder control object can provide a text box control to edit text content, and if in presentation mode, the object can provide a literal control to simply render the edited text content. Since the placeholder control object is a composition of the text box control and the literal control, such control maintains the same layout between authoring and presentation and hence provides a WYSIWYG (what you see is what you get) effect.
In addition, a need exists for a dynamic link control object that functions to dynamically present navigation links to a viewer on a page depending on the context of the page. Thus, the presented links may depend on such factors as the page itself, the position of the dynamic link control object on the page, the position of the page within the hierarchy of a web site having such page, the history of the viewer prior to viewing the page, and/or other contexts relating to the page. Accordingly, a functionary designing the page need not specify each link to be presented to the viewer but need only place an appropriate dynamic link control object on the page, where the dynamic link control object automatically determines what links to be presented to the viewer based on the context of the page.